﻿using Little.Soldier.SWIFT;
using Little.Soldier.SWIFT.Definition;
using System.ComponentModel;

namespace Little.Soldier.SWIFT.Messages.Category0
{
  public class MT022 : SwiftMessage
  {
    private static SwiftMessageDefinition MessageDefinition;
    private static SwiftTagDefinition U0002;
    private static SwiftTagSubItemDefinition U0003;
    private static SwiftTagChoiceDefinition U0004;
    private static SwiftTagDefinition U0005;
    private static SwiftTagSubItemDefinition U0006;
    private static SwiftTagSubItemDefinition U0007;
    private static SwiftTagDefinition U0008;
    private static SwiftTagSubItemDefinition U000E;
    private static SwiftTagSubItemDefinition U000F;
    private static SwiftTagSubItemDefinition U0010;
    private static SwiftTagDefinition U0011;
    private static SwiftTagSubItemDefinition U0012;
    private static SwiftTagSubItemDefinition U0013;
    private static SwiftTagDefinition U0014;
    private static SwiftTagSubItemDefinition U0015;
    private static SwiftTagSubItemDefinition U0016;
    private static SwiftTagSubItemDefinition U0017;
    private static SwiftTagSequenceDefinition U0018;
    private static SwiftTagDefinition U0019;
    private static SwiftTagSubItemDefinition U001A;
    private static SwiftTagSubItemDefinition U001B;
    private static SwiftTagSubItemDefinition U001C;
    private static SwiftTagSubItemDefinition U001D;
    private static SwiftTagSubItemDefinition U001E;
    private static SwiftTagSubItemDefinition U001F;
    private static SwiftTagDefinition U007F;
    private static SwiftTagSubItemDefinition U0080;
    private static SwiftTagSequenceDefinition U0081;
    private static SwiftTagDefinition U0082;
    private static SwiftTagSubItemDefinition U0083;
    private static SwiftTagSubItemDefinition U0084;
    private static SwiftTagSubItemDefinition U0086;
    private static SwiftTagSubItemDefinition U0087;
    private static SwiftTagSubItemDefinition U0088;
    private static SwiftTagDefinition U0089;
    private static SwiftTagSubItemDefinition U008A;
    private static SwiftTagSequenceDefinition U008B;
    private static SwiftTagDefinition U008C;
    private static SwiftTagSubItemDefinition U008D;
    private static SwiftTagSubItemDefinition U008E;
    private static SwiftTagSubItemDefinition U008F;
    private static SwiftTagSubItemDefinition U0090;
    private static SwiftTagSubItemDefinition U0091;
    private static SwiftTagSubItemDefinition U0092;
    private static SwiftTagDefinition U0093;
    private static SwiftTagSubItemDefinition U0094;
    private static SwiftTagSequenceDefinition U0095;
    private static SwiftTagDefinition U0096;
    private static SwiftTagSubItemDefinition U0097;
    private static SwiftTagSubItemDefinition U0098;
    private static SwiftTagSubItemDefinition U0099;
    private static SwiftTagSubItemDefinition U009A;
    private static SwiftTagSubItemDefinition U009B;
    private static SwiftTagDefinition U009C;
    private static SwiftTagSubItemDefinition U009D;
    private static SwiftTagSequenceDefinition U009E;
    private static SwiftTagDefinition U009F;
    private static SwiftTagSubItemDefinition U0001U0002;
    private static SwiftTagSubItemDefinition U0002U0002;
    private static SwiftTagSubItemDefinition U0003U0002;
    private static SwiftTagSubItemDefinition U0004U0002;
    private static SwiftTagSubItemDefinition U0005U0002;
    private static SwiftTagSubItemDefinition U0006U0002;
    private static SwiftTagDefinition U0007U0002;
    private static SwiftTagSubItemDefinition U0008U0002;
    private static SwiftTagSequenceDefinition U000EU0002;
    private static SwiftTagDefinition U000FU0002;
    private static SwiftTagSubItemDefinition U0010U0002;
    private static SwiftTagSubItemDefinition U0011U0002;
    private static SwiftTagSubItemDefinition U0012U0002;
    private static SwiftTagSubItemDefinition U0013U0002;
    private static SwiftTagSubItemDefinition U0014U0002;
    private static SwiftTagSubItemDefinition U0015U0002;
    private static SwiftTagDefinition U0016U0002;
    private static SwiftTagSubItemDefinition U0017U0002;
    private static SwiftTagSequenceDefinition U0018U0002;
    private static SwiftTagDefinition U0019U0002;
    private static SwiftTagSubItemDefinition U001AU0002;
    private static SwiftTagSubItemDefinition U001BU0002;
    private static SwiftTagSubItemDefinition U001CU0002;
    private static SwiftTagSubItemDefinition U001DU0002;
    private static SwiftTagSubItemDefinition U001EU0002;
    private static SwiftTagDefinition U001FU0002;
    private static SwiftTagSubItemDefinition U007FU0002;
    private static SwiftTagDefinition U0080U0002;
    private static SwiftTagSubItemDefinition U0081U0002;
    private static SwiftTagSequenceDefinition U0082U0002;
    private static SwiftTagDefinition U0083U0002;
    private static SwiftTagSubItemDefinition U0084U0002;
    private static SwiftTagSubItemDefinition U0086U0002;
    private static SwiftTagSubItemDefinition U0087U0002;
    private static SwiftTagSubItemDefinition U0088U0002;
    private static SwiftTagSubItemDefinition U0089U0002;
    private static SwiftTagDefinition U008AU0002;
    private static SwiftTagSubItemDefinition U008BU0002;
    private static SwiftTagDefinition U008CU0002;
    private static SwiftTagSubItemDefinition U008DU0002;

    [Description("LT to which the retrieved copy should be delivered.")]
    public Tag102 SwiftAddress_102
    {
      get
      {
        return new Tag102((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U0002);
      }
    }

    [Description("LT to which the retrieved copy should be delivered.")]
    public Tag102 Tag102_SwiftAddress
    {
      get
      {
        return this.SwiftAddress_102;
      }
    }

    [Description("Message Input Reference")]
    public Tag251 MessageInputReference_251
    {
      get
      {
        return new Tag251((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U0005);
      }
    }

    [Description("Message Input Reference")]
    public Tag251 Tag251_MessageInputReference
    {
      get
      {
        return this.MessageInputReference_251;
      }
    }

    [Description("Message Input Reference Range")]
    public MT022.Tag252 MessageInputReferenceRange_252
    {
      get
      {
        return new MT022.Tag252((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U0008);
      }
    }

    [Description("Message Input Reference Range")]
    public MT022.Tag252 Tag252_MessageInputReferenceRange
    {
      get
      {
        return this.MessageInputReferenceRange_252;
      }
    }

    [Description("Message Output Reference")]
    public Tag253 MessageOutputReference_253
    {
      get
      {
        return new Tag253((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U0011);
      }
    }

    [Description("Message Output Reference")]
    public Tag253 Tag253_MessageOutputReference
    {
      get
      {
        return this.MessageOutputReference_253;
      }
    }

    [Description("Message Output Reference Range")]
    public MT022.Tag254 MessageOutputReferenceRange_254
    {
      get
      {
        return new MT022.Tag254((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U0014);
      }
    }

    [Description("Message Output Reference Range")]
    public MT022.Tag254 Tag254_MessageOutputReferenceRange
    {
      get
      {
        return this.MessageOutputReferenceRange_254;
      }
    }

    [Description("")]
    public MT022.MessageInputType_SequenceClass MessageInputType_Sequence
    {
      get
      {
        return new MT022.MessageInputType_SequenceClass((SwiftElement) this, 0, false);
      }
    }

    [Description("")]
    public MT022.InputTimeRange_SequenceClass InputTimeRange_Sequence
    {
      get
      {
        return new MT022.InputTimeRange_SequenceClass((SwiftElement) this, 0, false);
      }
    }

    [Description("")]
    public MT022.MessageOutputType_SequenceClass MessageOutputType_Sequence
    {
      get
      {
        return new MT022.MessageOutputType_SequenceClass((SwiftElement) this, 0, false);
      }
    }

    [Description("")]
    public MT022.OutputTimeRange_SequenceClass OutputTimeRange_Sequence
    {
      get
      {
        return new MT022.OutputTimeRange_SequenceClass((SwiftElement) this, 0, false);
      }
    }

    [Description("")]
    public MT022.CategoryInputType_SequenceClass CategoryInputType_Sequence
    {
      get
      {
        return new MT022.CategoryInputType_SequenceClass((SwiftElement) this, 0, false);
      }
    }

    [Description("")]
    public MT022.CategoryOutputType_SequenceClass CategoryOutputType_Sequence
    {
      get
      {
        return new MT022.CategoryOutputType_SequenceClass((SwiftElement) this, 0, false);
      }
    }

    [Description("")]
    public MT022.MessageUserReferenceInput_SequenceClass MessageUserReferenceInput_Sequence
    {
      get
      {
        return new MT022.MessageUserReferenceInput_SequenceClass((SwiftElement) this, 0, false);
      }
    }

    [Description("")]
    public MT022.MessageUserReferenceOutput_SequenceClass MessageUserReferenceOutput_Sequence
    {
      get
      {
        return new MT022.MessageUserReferenceOutput_SequenceClass((SwiftElement) this, 0, false);
      }
    }

    public MT022()
      : base(true)
    {
    }

    public MT022(SwiftMessage message)
      : base(message)
    {
    }

    internal override SwiftMessageDefinition MsgDefinition()
    {
      return MT022.MessageDefinition;
    }

    protected override void InitSwiftMessageDefinition()
    {
      MT022.MessageDefinition = new SwiftMessageDefinition("MT022", "Retrieval Request (Text and History)");
      MT022.U0002 = new SwiftTagDefinition("SwiftAddress_102", "LT to which the retrieved copy should be delivered.");
      MT022.U0002.TagName = "{102:";
      MT022.U0003 = new SwiftTagSubItemDefinition("SwiftAddress", "SWIFT Address");
      MT022.U0002.Elements.Add((SwiftDefinitionElement) MT022.U0003);
      MT022.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT022.U0002);
      MT022.U0004 = new SwiftTagChoiceDefinition("Choice", "");
      MT022.U0004.Multiple = true;
      MT022.U0005 = new SwiftTagDefinition("MessageInputReference_251", "Message Input Reference");
      MT022.U0005.TagName = "{251:";
      MT022.U0006 = new SwiftTagSubItemDefinition("MessageInputReference", "Message Input Reference");
      MT022.U0005.Elements.Add((SwiftDefinitionElement) MT022.U0006);
      MT022.U0007 = new SwiftTagSubItemDefinition("DecryptionKey", "decryption key");
      MT022.U0007.Mandatory = false;
      MT022.U0005.Elements.Add((SwiftDefinitionElement) MT022.U0007);
      MT022.U0004.Elements.Add((SwiftDefinitionElement) MT022.U0005);
      MT022.U0008 = new SwiftTagDefinition("MessageInputReferenceRange_252", "Message Input Reference Range");
      MT022.U0008.TagName = "{252:";
      MT022.U000E = new SwiftTagSubItemDefinition("MessageInputReference1", "Message Input Reference");
      MT022.U0008.Elements.Add((SwiftDefinitionElement) MT022.U000E);
      MT022.U000F = new SwiftTagSubItemDefinition("MessageInputReference2", "Message Input Reference");
      MT022.U0008.Elements.Add((SwiftDefinitionElement) MT022.U000F);
      MT022.U0010 = new SwiftTagSubItemDefinition("TimeRange", "Time Range");
      MT022.U0010.Mandatory = false;
      MT022.U0008.Elements.Add((SwiftDefinitionElement) MT022.U0010);
      MT022.U0004.Elements.Add((SwiftDefinitionElement) MT022.U0008);
      MT022.U0011 = new SwiftTagDefinition("MessageOutputReference_253", "Message Output Reference");
      MT022.U0011.TagName = "{253:";
      MT022.U0012 = new SwiftTagSubItemDefinition("MessageOutputReference", "Message Output Reference");
      MT022.U0011.Elements.Add((SwiftDefinitionElement) MT022.U0012);
      MT022.U0013 = new SwiftTagSubItemDefinition("DecryptionKey", "decryption key");
      MT022.U0013.Mandatory = false;
      MT022.U0011.Elements.Add((SwiftDefinitionElement) MT022.U0013);
      MT022.U0004.Elements.Add((SwiftDefinitionElement) MT022.U0011);
      MT022.U0014 = new SwiftTagDefinition("MessageOutputReferenceRange_254", "Message Output Reference Range");
      MT022.U0014.TagName = "{254:";
      MT022.U0015 = new SwiftTagSubItemDefinition("MessageOutputReference1", "Message Output Reference");
      MT022.U0014.Elements.Add((SwiftDefinitionElement) MT022.U0015);
      MT022.U0016 = new SwiftTagSubItemDefinition("MessageOutputReference2", "Message Output Reference");
      MT022.U0014.Elements.Add((SwiftDefinitionElement) MT022.U0016);
      MT022.U0017 = new SwiftTagSubItemDefinition("TimeRange", "Time Range");
      MT022.U0017.Mandatory = false;
      MT022.U0014.Elements.Add((SwiftDefinitionElement) MT022.U0017);
      MT022.U0004.Elements.Add((SwiftDefinitionElement) MT022.U0014);
      MT022.U0018 = new SwiftTagSequenceDefinition("MessageInputType_Sequence", "");
      MT022.U0019 = new SwiftTagDefinition("MessageInputType_255", "Message Input Type");
      MT022.U0019.TagName = "{255:";
      MT022.U001A = new SwiftTagSubItemDefinition("LtIdentifier", "Lt Identifier");
      MT022.U0019.Elements.Add((SwiftDefinitionElement) MT022.U001A);
      MT022.U001B = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT022.U0019.Elements.Add((SwiftDefinitionElement) MT022.U001B);
      MT022.U001C = new SwiftTagSubItemDefinition("SessionNumber", "Input session");
      MT022.U0019.Elements.Add((SwiftDefinitionElement) MT022.U001C);
      MT022.U001D = new SwiftTagSubItemDefinition("MessageType", "Message Type");
      MT022.U0019.Elements.Add((SwiftDefinitionElement) MT022.U001D);
      MT022.U001E = new SwiftTagSubItemDefinition("Date", "Input date");
      MT022.U0019.Elements.Add((SwiftDefinitionElement) MT022.U001E);
      MT022.U001F = new SwiftTagSubItemDefinition("TimeRange", "Input time range");
      MT022.U001F.Mandatory = false;
      MT022.U0019.Elements.Add((SwiftDefinitionElement) MT022.U001F);
      MT022.U0018.Elements.Add((SwiftDefinitionElement) MT022.U0019);
      MT022.U007F = new SwiftTagDefinition("FirstISN_1_152", "1st-isn");
      MT022.U007F.TagName = "{152:";
      MT022.U007F.Mandatory = false;
      MT022.U0080 = new SwiftTagSubItemDefinition("FirstISN", "First ISN");
      MT022.U007F.Elements.Add((SwiftDefinitionElement) MT022.U0080);
      MT022.U0018.Elements.Add((SwiftDefinitionElement) MT022.U007F);
      MT022.U0004.Elements.Add((SwiftDefinitionElement) MT022.U0018);
      MT022.U0081 = new SwiftTagSequenceDefinition("InputTimeRange_Sequence", "");
      MT022.U0082 = new SwiftTagDefinition("InputTimeRange_257", "input-time-range");
      MT022.U0082.TagName = "{257:";
      MT022.U0083 = new SwiftTagSubItemDefinition("LtIdentifier", "Lt Identifier");
      MT022.U0082.Elements.Add((SwiftDefinitionElement) MT022.U0083);
      MT022.U0084 = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT022.U0082.Elements.Add((SwiftDefinitionElement) MT022.U0084);
      MT022.U0086 = new SwiftTagSubItemDefinition("Date", "Input date");
      MT022.U0082.Elements.Add((SwiftDefinitionElement) MT022.U0086);
      MT022.U0087 = new SwiftTagSubItemDefinition("TimeRange", "Input time range");
      MT022.U0082.Elements.Add((SwiftDefinitionElement) MT022.U0087);
      MT022.U0088 = new SwiftTagSubItemDefinition("SessionNumber", "Input session");
      MT022.U0088.Mandatory = false;
      MT022.U0082.Elements.Add((SwiftDefinitionElement) MT022.U0088);
      MT022.U0081.Elements.Add((SwiftDefinitionElement) MT022.U0082);
      MT022.U0089 = new SwiftTagDefinition("FirstISN_2_152", "1st-isn");
      MT022.U0089.TagName = "{152:";
      MT022.U0089.Mandatory = false;
      MT022.U008A = new SwiftTagSubItemDefinition("FirstISN", "First ISN");
      MT022.U0089.Elements.Add((SwiftDefinitionElement) MT022.U008A);
      MT022.U0081.Elements.Add((SwiftDefinitionElement) MT022.U0089);
      MT022.U0004.Elements.Add((SwiftDefinitionElement) MT022.U0081);
      MT022.U008B = new SwiftTagSequenceDefinition("MessageOutputType_Sequence", "");
      MT022.U008C = new SwiftTagDefinition("MessageOutputType_258", "msg-output-type");
      MT022.U008C.TagName = "{258:";
      MT022.U008D = new SwiftTagSubItemDefinition("LtIdentifier", "Lt Identifier");
      MT022.U008C.Elements.Add((SwiftDefinitionElement) MT022.U008D);
      MT022.U008E = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT022.U008C.Elements.Add((SwiftDefinitionElement) MT022.U008E);
      MT022.U008F = new SwiftTagSubItemDefinition("SessionNumber", "OutputSession");
      MT022.U008C.Elements.Add((SwiftDefinitionElement) MT022.U008F);
      MT022.U0090 = new SwiftTagSubItemDefinition("MessageType", "MessageType");
      MT022.U008C.Elements.Add((SwiftDefinitionElement) MT022.U0090);
      MT022.U0091 = new SwiftTagSubItemDefinition("Date", "OutputDate");
      MT022.U008C.Elements.Add((SwiftDefinitionElement) MT022.U0091);
      MT022.U0092 = new SwiftTagSubItemDefinition("TimeRange", "OutputTimeRange");
      MT022.U0092.Mandatory = false;
      MT022.U008C.Elements.Add((SwiftDefinitionElement) MT022.U0092);
      MT022.U008B.Elements.Add((SwiftDefinitionElement) MT022.U008C);
      MT022.U0093 = new SwiftTagDefinition("FirstOSN_1_153", "1st-osn");
      MT022.U0093.TagName = "{153:";
      MT022.U0093.Mandatory = false;
      MT022.U0094 = new SwiftTagSubItemDefinition("FirstOSN", "First OSN");
      MT022.U0093.Elements.Add((SwiftDefinitionElement) MT022.U0094);
      MT022.U008B.Elements.Add((SwiftDefinitionElement) MT022.U0093);
      MT022.U0004.Elements.Add((SwiftDefinitionElement) MT022.U008B);
      MT022.U0095 = new SwiftTagSequenceDefinition("OutputTimeRange_Sequence", "");
      MT022.U0096 = new SwiftTagDefinition("OutputTimeRange_260", "output-time-range");
      MT022.U0096.TagName = "{260:";
      MT022.U0097 = new SwiftTagSubItemDefinition("LtIdentifier", "Lt Identifier");
      MT022.U0096.Elements.Add((SwiftDefinitionElement) MT022.U0097);
      MT022.U0098 = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT022.U0096.Elements.Add((SwiftDefinitionElement) MT022.U0098);
      MT022.U0099 = new SwiftTagSubItemDefinition("Date", "OutputDate");
      MT022.U0096.Elements.Add((SwiftDefinitionElement) MT022.U0099);
      MT022.U009A = new SwiftTagSubItemDefinition("TimeRange", "OutputTimeRange");
      MT022.U0096.Elements.Add((SwiftDefinitionElement) MT022.U009A);
      MT022.U009B = new SwiftTagSubItemDefinition("SessionNumber", "OutputSession");
      MT022.U009B.Mandatory = false;
      MT022.U0096.Elements.Add((SwiftDefinitionElement) MT022.U009B);
      MT022.U0095.Elements.Add((SwiftDefinitionElement) MT022.U0096);
      MT022.U009C = new SwiftTagDefinition("FirstOSN_2_153", "1st-osn");
      MT022.U009C.TagName = "{153:";
      MT022.U009C.Mandatory = false;
      MT022.U009D = new SwiftTagSubItemDefinition("FirstOSN", "First OSN");
      MT022.U009C.Elements.Add((SwiftDefinitionElement) MT022.U009D);
      MT022.U0095.Elements.Add((SwiftDefinitionElement) MT022.U009C);
      MT022.U0004.Elements.Add((SwiftDefinitionElement) MT022.U0095);
      MT022.U009E = new SwiftTagSequenceDefinition("CategoryInputType_Sequence", "");
      MT022.U009F = new SwiftTagDefinition("CategoryInputType_256", "category input type");
      MT022.U009F.TagName = "{256:";
      MT022.U0001U0002 = new SwiftTagSubItemDefinition("LtIdentifier", "Lt Identifier");
      MT022.U009F.Elements.Add((SwiftDefinitionElement) MT022.U0001U0002);
      MT022.U0002U0002 = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT022.U009F.Elements.Add((SwiftDefinitionElement) MT022.U0002U0002);
      MT022.U0003U0002 = new SwiftTagSubItemDefinition("SessionNumber", "InputSession");
      MT022.U009F.Elements.Add((SwiftDefinitionElement) MT022.U0003U0002);
      MT022.U0004U0002 = new SwiftTagSubItemDefinition("MessageCategory", "MessageCategory");
      MT022.U009F.Elements.Add((SwiftDefinitionElement) MT022.U0004U0002);
      MT022.U0005U0002 = new SwiftTagSubItemDefinition("Date", "InputDate");
      MT022.U009F.Elements.Add((SwiftDefinitionElement) MT022.U0005U0002);
      MT022.U0006U0002 = new SwiftTagSubItemDefinition("TimeRange", "InputTimeRange");
      MT022.U0006U0002.Mandatory = false;
      MT022.U009F.Elements.Add((SwiftDefinitionElement) MT022.U0006U0002);
      MT022.U009E.Elements.Add((SwiftDefinitionElement) MT022.U009F);
      MT022.U0007U0002 = new SwiftTagDefinition("FirstISN_3_152", "1st-isn");
      MT022.U0007U0002.TagName = "{152:";
      MT022.U0007U0002.Mandatory = false;
      MT022.U0008U0002 = new SwiftTagSubItemDefinition("FirstISN", "First ISN");
      MT022.U0007U0002.Elements.Add((SwiftDefinitionElement) MT022.U0008U0002);
      MT022.U009E.Elements.Add((SwiftDefinitionElement) MT022.U0007U0002);
      MT022.U0004.Elements.Add((SwiftDefinitionElement) MT022.U009E);
      MT022.U000EU0002 = new SwiftTagSequenceDefinition("CategoryOutputType_Sequence", "");
      MT022.U000FU0002 = new SwiftTagDefinition("CategoryOutputType_259", "category output type");
      MT022.U000FU0002.TagName = "{259:";
      MT022.U0010U0002 = new SwiftTagSubItemDefinition("LtIdentifier", "Lt Identifier");
      MT022.U000FU0002.Elements.Add((SwiftDefinitionElement) MT022.U0010U0002);
      MT022.U0011U0002 = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT022.U000FU0002.Elements.Add((SwiftDefinitionElement) MT022.U0011U0002);
      MT022.U0012U0002 = new SwiftTagSubItemDefinition("SessionNumber", "OutputSession");
      MT022.U000FU0002.Elements.Add((SwiftDefinitionElement) MT022.U0012U0002);
      MT022.U0013U0002 = new SwiftTagSubItemDefinition("MessageCategory", "MessageCategory");
      MT022.U000FU0002.Elements.Add((SwiftDefinitionElement) MT022.U0013U0002);
      MT022.U0014U0002 = new SwiftTagSubItemDefinition("Date", "OutputDate");
      MT022.U000FU0002.Elements.Add((SwiftDefinitionElement) MT022.U0014U0002);
      MT022.U0015U0002 = new SwiftTagSubItemDefinition("TimeRange", "OutputTimeRange");
      MT022.U000FU0002.Elements.Add((SwiftDefinitionElement) MT022.U0015U0002);
      MT022.U000EU0002.Elements.Add((SwiftDefinitionElement) MT022.U000FU0002);
      MT022.U0016U0002 = new SwiftTagDefinition("FirstOSN_3_153", "1st-osn");
      MT022.U0016U0002.TagName = "{153:";
      MT022.U0016U0002.Mandatory = false;
      MT022.U0017U0002 = new SwiftTagSubItemDefinition("FirstOSN", "First OSN");
      MT022.U0016U0002.Elements.Add((SwiftDefinitionElement) MT022.U0017U0002);
      MT022.U000EU0002.Elements.Add((SwiftDefinitionElement) MT022.U0016U0002);
      MT022.U0004.Elements.Add((SwiftDefinitionElement) MT022.U000EU0002);
      MT022.U0018U0002 = new SwiftTagSequenceDefinition("MessageUserReferenceInput_Sequence", "");
      MT022.U0019U0002 = new SwiftTagDefinition("MessageUserReferenceInput_263", "Message User Reference Input");
      MT022.U0019U0002.TagName = "{263:";
      MT022.U001AU0002 = new SwiftTagSubItemDefinition("LtIdentifier", "Lt Identifier");
      MT022.U0019U0002.Elements.Add((SwiftDefinitionElement) MT022.U001AU0002);
      MT022.U001BU0002 = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT022.U0019U0002.Elements.Add((SwiftDefinitionElement) MT022.U001BU0002);
      MT022.U001CU0002 = new SwiftTagSubItemDefinition("Date", "InputDate");
      MT022.U0019U0002.Elements.Add((SwiftDefinitionElement) MT022.U001CU0002);
      MT022.U001DU0002 = new SwiftTagSubItemDefinition("TimeRange", "InputTimeRange");
      MT022.U0019U0002.Elements.Add((SwiftDefinitionElement) MT022.U001DU0002);
      MT022.U001EU0002 = new SwiftTagSubItemDefinition("SessionNumber", "InputSession");
      MT022.U001EU0002.Mandatory = false;
      MT022.U0019U0002.Elements.Add((SwiftDefinitionElement) MT022.U001EU0002);
      MT022.U0018U0002.Elements.Add((SwiftDefinitionElement) MT022.U0019U0002);
      MT022.U001FU0002 = new SwiftTagDefinition("MessageUserReference_1_108", "Message User Input");
      MT022.U001FU0002.TagName = "{108:";
      MT022.U007FU0002 = new SwiftTagSubItemDefinition("MessageUserReference", "Message User Input");
      MT022.U001FU0002.Elements.Add((SwiftDefinitionElement) MT022.U007FU0002);
      MT022.U0018U0002.Elements.Add((SwiftDefinitionElement) MT022.U001FU0002);
      MT022.U0080U0002 = new SwiftTagDefinition("FirstISN_4_152", "1st-isn");
      MT022.U0080U0002.TagName = "{152:";
      MT022.U0080U0002.Mandatory = false;
      MT022.U0081U0002 = new SwiftTagSubItemDefinition("FirstISN", "First ISN");
      MT022.U0080U0002.Elements.Add((SwiftDefinitionElement) MT022.U0081U0002);
      MT022.U0018U0002.Elements.Add((SwiftDefinitionElement) MT022.U0080U0002);
      MT022.U0004.Elements.Add((SwiftDefinitionElement) MT022.U0018U0002);
      MT022.U0082U0002 = new SwiftTagSequenceDefinition("MessageUserReferenceOutput_Sequence", "");
      MT022.U0083U0002 = new SwiftTagDefinition("MessageUserReferenceOutput_264", "Message User Reference Output");
      MT022.U0083U0002.TagName = "{264:";
      MT022.U0084U0002 = new SwiftTagSubItemDefinition("LtIdentifier", "Lt Identifier");
      MT022.U0083U0002.Elements.Add((SwiftDefinitionElement) MT022.U0084U0002);
      MT022.U0086U0002 = new SwiftTagSubItemDefinition("BranchCode", "Branch Code");
      MT022.U0083U0002.Elements.Add((SwiftDefinitionElement) MT022.U0086U0002);
      MT022.U0087U0002 = new SwiftTagSubItemDefinition("Date", "OutputDate");
      MT022.U0083U0002.Elements.Add((SwiftDefinitionElement) MT022.U0087U0002);
      MT022.U0088U0002 = new SwiftTagSubItemDefinition("TimeRange", "OutputTimeRange");
      MT022.U0083U0002.Elements.Add((SwiftDefinitionElement) MT022.U0088U0002);
      MT022.U0089U0002 = new SwiftTagSubItemDefinition("SessionNumber", "OutputSession");
      MT022.U0089U0002.Mandatory = false;
      MT022.U0083U0002.Elements.Add((SwiftDefinitionElement) MT022.U0089U0002);
      MT022.U0082U0002.Elements.Add((SwiftDefinitionElement) MT022.U0083U0002);
      MT022.U008AU0002 = new SwiftTagDefinition("MessageUserReference_2_108", "Message User Reference");
      MT022.U008AU0002.TagName = "{108:";
      MT022.U008BU0002 = new SwiftTagSubItemDefinition("MessageUserReference", "Message User Reference");
      MT022.U008AU0002.Elements.Add((SwiftDefinitionElement) MT022.U008BU0002);
      MT022.U0082U0002.Elements.Add((SwiftDefinitionElement) MT022.U008AU0002);
      MT022.U008CU0002 = new SwiftTagDefinition("FirstOSN_4_153", "1st-osn");
      MT022.U008CU0002.TagName = "{153:";
      MT022.U008CU0002.Mandatory = false;
      MT022.U008DU0002 = new SwiftTagSubItemDefinition("FirstISN", "First ISN");
      MT022.U008CU0002.Elements.Add((SwiftDefinitionElement) MT022.U008DU0002);
      MT022.U0082U0002.Elements.Add((SwiftDefinitionElement) MT022.U008CU0002);
      MT022.U0004.Elements.Add((SwiftDefinitionElement) MT022.U0082U0002);
      MT022.MessageDefinition.Elements.Add((SwiftDefinitionElement) MT022.U0004);
    }

    public class Tag252 : SwiftTagWrapper
    {
      public string Value
      {
        get
        {
          return this.GetValue();
        }
        set
        {
          this.SetValue("252", value);
        }
      }

      internal Tag252(SwiftElement parent, int index, SwiftDefinitionElement definition)
        : base(parent, index, definition)
      {
      }
    }

    public class Tag254 : SwiftTagWrapper
    {
      public string Value
      {
        get
        {
          return this.GetValue();
        }
        set
        {
          this.SetValue("254", value);
        }
      }

      internal Tag254(SwiftElement parent, int index, SwiftDefinitionElement definition)
        : base(parent, index, definition)
      {
      }
    }

    public class MessageInputType_SequenceClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT022.U0018;
        }
      }

      [Description("Message Input Type")]
      public Tag255 MessageInputType_255
      {
        get
        {
          return new Tag255((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U0019);
        }
      }

      [Description("Message Input Type")]
      public Tag255 Tag255_MessageInputType
      {
        get
        {
          return this.MessageInputType_255;
        }
      }

      [Description("1st-isn")]
      public Tag152 FirstISN_1_152
      {
        get
        {
          return new Tag152((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U007F);
        }
      }

      [Description("1st-isn")]
      public Tag152 Tag152_FirstISN_1
      {
        get
        {
          return this.FirstISN_1_152;
        }
      }

      internal MessageInputType_SequenceClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }
    }

    public class InputTimeRange_SequenceClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT022.U0081;
        }
      }

      [Description("input-time-range")]
      public Tag257 InputTimeRange_257
      {
        get
        {
          return new Tag257((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U0082);
        }
      }

      [Description("input-time-range")]
      public Tag257 Tag257_InputTimeRange
      {
        get
        {
          return this.InputTimeRange_257;
        }
      }

      [Description("1st-isn")]
      public Tag152 FirstISN_2_152
      {
        get
        {
          return new Tag152((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U0089);
        }
      }

      [Description("1st-isn")]
      public Tag152 Tag152_FirstISN_2
      {
        get
        {
          return this.FirstISN_2_152;
        }
      }

      internal InputTimeRange_SequenceClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }
    }

    public class MessageOutputType_SequenceClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT022.U008B;
        }
      }

      [Description("msg-output-type")]
      public Tag258 MessageOutputType_258
      {
        get
        {
          return new Tag258((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U008C);
        }
      }

      [Description("msg-output-type")]
      public Tag258 Tag258_MessageOutputType
      {
        get
        {
          return this.MessageOutputType_258;
        }
      }

      [Description("1st-osn")]
      public Tag153 FirstOSN_1_153
      {
        get
        {
          return new Tag153((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U0093);
        }
      }

      [Description("1st-osn")]
      public Tag153 Tag153_FirstOSN_1
      {
        get
        {
          return this.FirstOSN_1_153;
        }
      }

      internal MessageOutputType_SequenceClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }
    }

    public class OutputTimeRange_SequenceClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT022.U0095;
        }
      }

      [Description("output-time-range")]
      public Tag260 OutputTimeRange_260
      {
        get
        {
          return new Tag260((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U0096);
        }
      }

      [Description("output-time-range")]
      public Tag260 Tag260_OutputTimeRange
      {
        get
        {
          return this.OutputTimeRange_260;
        }
      }

      [Description("1st-osn")]
      public Tag153 FirstOSN_2_153
      {
        get
        {
          return new Tag153((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U009C);
        }
      }

      [Description("1st-osn")]
      public Tag153 Tag153_FirstOSN_2
      {
        get
        {
          return this.FirstOSN_2_153;
        }
      }

      internal OutputTimeRange_SequenceClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }
    }

    public class CategoryInputType_SequenceClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT022.U009E;
        }
      }

      [Description("category input type")]
      public Tag256 CategoryInputType_256
      {
        get
        {
          return new Tag256((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U009F);
        }
      }

      [Description("category input type")]
      public Tag256 Tag256_CategoryInputType
      {
        get
        {
          return this.CategoryInputType_256;
        }
      }

      [Description("1st-isn")]
      public Tag152 FirstISN_3_152
      {
        get
        {
          return new Tag152((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U0007U0002);
        }
      }

      [Description("1st-isn")]
      public Tag152 Tag152_FirstISN_3
      {
        get
        {
          return this.FirstISN_3_152;
        }
      }

      internal CategoryInputType_SequenceClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }
    }

    public class CategoryOutputType_SequenceClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT022.U000EU0002;
        }
      }

      [Description("category output type")]
      public Tag259 CategoryOutputType_259
      {
        get
        {
          return new Tag259((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U000FU0002);
        }
      }

      [Description("category output type")]
      public Tag259 Tag259_CategoryOutputType
      {
        get
        {
          return this.CategoryOutputType_259;
        }
      }

      [Description("1st-osn")]
      public Tag153 FirstOSN_3_153
      {
        get
        {
          return new Tag153((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U0016U0002);
        }
      }

      [Description("1st-osn")]
      public Tag153 Tag153_FirstOSN_3
      {
        get
        {
          return this.FirstOSN_3_153;
        }
      }

      internal CategoryOutputType_SequenceClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }
    }

    public class MessageUserReferenceInput_SequenceClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT022.U0018U0002;
        }
      }

      [Description("Message User Reference Input")]
      public Tag263 MessageUserReferenceInput_263
      {
        get
        {
          return new Tag263((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U0019U0002);
        }
      }

      [Description("Message User Reference Input")]
      public Tag263 Tag263_MessageUserReferenceInput
      {
        get
        {
          return this.MessageUserReferenceInput_263;
        }
      }

      [Description("Message User Input")]
      public Tag108 MessageUserReference_1_108
      {
        get
        {
          return new Tag108((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U001FU0002);
        }
      }

      [Description("Message User Input")]
      public Tag108 Tag108_MessageUserReference_1
      {
        get
        {
          return this.MessageUserReference_1_108;
        }
      }

      [Description("1st-isn")]
      public Tag152 FirstISN_4_152
      {
        get
        {
          return new Tag152((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U0080U0002);
        }
      }

      [Description("1st-isn")]
      public Tag152 Tag152_FirstISN_4
      {
        get
        {
          return this.FirstISN_4_152;
        }
      }

      internal MessageUserReferenceInput_SequenceClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }
    }

    public class MessageUserReferenceOutput_SequenceClass : SwiftTagSequence
    {
      internal override SwiftDefinitionElement Definition
      {
        get
        {
          return (SwiftDefinitionElement) MT022.U0082U0002;
        }
      }

      [Description("Message User Reference Output")]
      public Tag264 MessageUserReferenceOutput_264
      {
        get
        {
          return new Tag264((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U0083U0002);
        }
      }

      [Description("Message User Reference Output")]
      public Tag264 Tag264_MessageUserReferenceOutput
      {
        get
        {
          return this.MessageUserReferenceOutput_264;
        }
      }

      [Description("Message User Reference")]
      public Tag108 MessageUserReference_2_108
      {
        get
        {
          return new Tag108((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U008AU0002);
        }
      }

      [Description("Message User Reference")]
      public Tag108 Tag108_MessageUserReference_2
      {
        get
        {
          return this.MessageUserReference_2_108;
        }
      }

      [Description("1st-osn")]
      public MT022.MessageUserReferenceOutput_SequenceClass.Tag153 FirstOSN_4_153
      {
        get
        {
          return new MT022.MessageUserReferenceOutput_SequenceClass.Tag153((SwiftElement) this, 0, (SwiftDefinitionElement) MT022.U008CU0002);
        }
      }

      [Description("1st-osn")]
      public MT022.MessageUserReferenceOutput_SequenceClass.Tag153 Tag153_FirstOSN_4
      {
        get
        {
          return this.FirstOSN_4_153;
        }
      }

      internal MessageUserReferenceOutput_SequenceClass(SwiftElement parent, int index, bool createTags)
        : base(parent, index, createTags)
      {
      }

      public class Tag153 : SwiftTagWrapper
      {
        public string Value
        {
          get
          {
            return this.GetValue();
          }
          set
          {
            this.SetValue("153", value);
          }
        }

        internal Tag153(SwiftElement parent, int index, SwiftDefinitionElement definition)
          : base(parent, index, definition)
        {
        }
      }
    }
  }
}
